import localMenuList from './localMenus'

type devENVType = 'local' | 'dev' // 开发时环境变量 devENV 控制
type buildENVType = 'dev' | 'test' | 'prod' // 打包时环境变量 npm scripts 控制

console.log(`******** node环境变量: ${process.env.NODE_ENV} ********`)
console.log(`******** build环境变量: ${process.env.BUILD_ENV} ********`)

const devENV: devENVType = 'local' // local|dev
const ENV =
  process.env.NODE_ENV === 'development'
    ? devENV
    : (process.env.BUILD_ENV as buildENVType)
console.log(`******** EVN: ${ENV} ********`)

const APIConfig = {
  // 本机 mock
  local: {
    apiPrefix: '/mock',
    baseURL: 'http://127.0.0.1:9999',
  },
  dev: {
    apiPrefix: '/baseApi',
    baseURL: 'http://127.0.0.1:9999',
  },
  test: {
    apiPrefix: '/baseApi',
    baseURL: 'http://test.xxx.com',
  },
  prod: {
    apiPrefix: '/baseApi',
    baseURL: 'http://www.xxx.com',
    LOGIN_URL: 'http://prod.login.com',
    LOGOUT_URL: 'http://prod.logout.com',
  },
}

// 自定义面包屑 页面（隐藏全局根据路由生成的面包屑）
const customBreadPages: (RegExp | string)[] = []
// 额外的带面包屑 页面（非菜单）
const extraBreadPages: {
  path: RegExp | string // 路径
  pathName: string // 页面名称
  ableLink: boolean // 面包屑是否可点击push到该页
}[] = [
  {
    path: /\/list\/[^/]{1,}/,
    pathName: '详情', // 示例
    ableLink: true,
  },
]

export default {
  name: 'xx平台',
  prefix: 'SYSTEM', // 全局前缀
  department: 'xx部门',
  copyRight: 'Copyright © 1998-2020 BAT. All Rights Reserved.',
  departmentInfo: 'xx公司 xxxx部门, 公共支持中心: IT热线-(xxxx:)xxxxx',

  mockPrefix: '/mock', // mock接口前缀
  routerMode: 'hash', // 路由模式 browser|hash
  basename: '/iatrack', // browser模式时 部署basename
  LOGIN_URL: 'http://test.login.com', // 非正式环境时
  LOGOUT_URL: 'http://test.logout.com', // 非正式环境时

  localMenuList,
  allowPages: ['/', '/no-auth', '/404'], // 游客页面
  fullPages: ['/no-auth', '/404'], // 全屏页面
  customBreadPages, // 自定义页面路由（隐藏全局根据路由生成的面包屑）动态路由可用正则
  extraBreadPages,

  ENV,
  uploadURL: `${APIConfig[ENV].baseURL}${APIConfig[ENV].apiPrefix}/uploadFile`,
  ...APIConfig[ENV],
}
